Zugreifen auf Keyframes und Marken in ExpressionsSie können nun Expressions schreiben, die auf Keyframes und Marken zugreifen. Dies ist hilfreich, wenn Sie zu bestimmten Zeitpunkten Werte aufrufen möchten, die durch Positionen und Werte von Keyframes und Marken bestimmt sind. Rufen Sie Keyframes oder Marken mit folgenden Attributen und Methoden auf: this_comp.marker(marker_num) Gibt die Zeit einer Kompositionsmarke zurück. So können Sie die Deckkraft einer Ebene an dem Zeitpunkt ausblenden, an dem sich die Marke befindet. Beispiel: mark_time = this_comp.marker(1); linear(time, mark_time - .5, mark_time, 100, 0) num_keys Gibt die Anzahl der Keyframes einer Eigenschaft zurück. nearest_key(time) Gibt das Keyframe-Objekt zurück, das der angegebenen Zeit am nächsten liegt. key(idx) Gibt den Keyframe nach Nummer zurück. Beispielsweise gibt "key(1)" den ersten Key zurück. Wenn Sie ein Key-Objekt aufrufen, können Sie die Eigenschaften "Zeit", "Index" und "Wert" abfragen. Die folgende Expression gibt beispielsweise den Wert des dritten Positionskeys zurück: position.key(3).value Wenn Sie folgende Expression für die animierte Eigenschaft "Deckkraft" einer Ebene schreiben, werden die Keyframe-Werte ignoriert, und nur die Zeitposition der Keyframes wird verwendet, um zu steuern, wo ein Blitz erzeugt werden soll: d = Math.abs(time - nearest_key(time).time); ease_out(d, 0, .1, 100, 0) marker Gibt die Eigenschaft "Marke" einer Ebene zurück. Die Eigenschaft "Marke" unterscheidet sich von anderen Eigenschaften, z. B. "Position", dahingehend, daß die einzigen verfügbaren Methoden "key()", "nearest_key" und "num_keys" sind. Sie können die Keys auf zwei Arten abfragen: Nach Index, wie in der folgenden Expression: marker.key(1) Oder Sie ermitteln die Keys über den Namen der Marke, wie Sie ihn im Kommentarfeld des Dialogfelds "Marken" eingegeben haben: marker.key("NameDerMarke") Der Wert für Marken-Keys ist eine Zeichenfolge und kein numerischer Wert. Betrachten Sie beispielsweise folgende Expression für die Eigenschaft "Deckkraft" einer Ebene: m1 = marker.key("Start").time; m2 = marker.key("End").time; linear(time, m1, m2, 0, 100); |